#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<vector>
using namespace std;
//class Solution {
//public:
//    void duplicateZeros(vector<int>& arr) {
//        int cur = 0;
//        int des = -1;
//
//        while (des <= arr.size() - 1)
//        {
//            if (arr[cur] == 0)
//            {
//                des += 2;
//            }
//            else
//            {
//                des++;
//            }
//            if (des >= (int)arr.size() - 1)
//            {
//                break;
//            }
//            cur++;
//        }
//
//        while (des!= -1 && des != 0)
//        {
//            int t = arr[cur];
//            if (arr[cur] != 0)
//            {
//                arr[des] = arr[cur];
//            }
//            else
//            {
//                arr[des] = arr[cur];
//                des--;
//                arr[des] = arr[cur];
//            }
//            des--;
//            if (cur != 0)
//                cur--;
//        }
//    }
//};

void duplicateZeros(vector<int>& arr) {
    int cur = 0;
    int des = -1;
    int n = arr.size();

    while (cur < n)
    {
        if (arr[cur] == 0)
            des += 2;
        else
            des++;

        if (des >= n - 1)
            break;

        cur++;
    }

    if (des == n)
    {
        arr[n - 1] = 0;
        des -= 2;
        cur--;
    }

    while (cur >= 0)
    {
        if (arr[cur] != 0)
        {
            arr[des--] = arr[cur--];
        }
        else
        {
            arr[des--] = 0;
            arr[des--] = 0;
            cur--;
        }
    }

}
int main()
{
   /* Solution s;
    vector<int> v = { 8,4,5,0,0,0,0,7};
    s.duplicateZeros(v);*/

    int n = -1;
    cout << (size_t)n;
    return 0;
}